python3小白课:深入列表

我们在前面的课程中已经初步了解了列表和元组的相关知识。

我们也知道,列表还有元组没有的增删成员等功能。因此,本节课我们再来深入了解一下列表特有的一些知识点吧。

直接上代码例子:

# coding:utf-8
# 增加列表元素,最最常用。列表有点像其他编程语言中所说的数组,但它支持多种类型的元素
# 很常用的一个场景是先定义一个空列表,后续把需要存储的成员一个个存进列表去
# 使用append方法可以将元素添加到列表中,这么写:
a = []
a.append("小白")
print(a)
# 也支持增加列表、元组等等序列类型作为单个成员,可以实现列表嵌套列表或元组等的效果
a.append((1, 2, 3))
print(a, len(a))
# 如果是要追加一个列表而不是加个列表元素呢?使用extend方法
a.extend(["apple", "banana"])
print(a, len(a))
# 刚才都是添加到列表尾部的,如果希望在中间插入元素呢?使用insert方法即可,需要指定插入位置的索引
a.insert(1, "我是插入的元素")
print(a)

# 删除列表元素
# 使用del语句,可以删除列表元素、列表子序列,还能删除变量呢
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
del a[1]
print(a)
del a[4:]
print(a)
# 删除变量是del命令带的功能,删除后再打印,会报错。但我们很少做这样的操作,你可以不掌握
name = "小白"
del name
print(name)  # 这句会报错
# 你还可以使用remove方法来删除元素,它不根据索引删除,根据的是元素本身删除,如果找不到会报错
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a.remove(4)
print(a)
a.remove(11)   # 这里找不到,会报错
print(a)
# 如果你需要清空列表,将列表变回空列表,可以使用clear方法
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a.clear()
print(a)
# 后面在修改元素列表的部分我们还有一种可以删除元素的方法,也是很好用的↓↓↓

# 修改列表元素
# 可以直接通过索引获取需要修改的元素来修改
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[1] = "啊哦,我被修改啦~"
print(a)
# 也可以通过索引的各种方法修改列表,也支持步长等修改
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 这里我们取出了两个元素,却给赋值三个元素,这样相当于删除两个,再插入三个,也是可以的
a[1:3] = ["修改1", "修改2", "修改3"]
print(a)
# 赋值为空列表,还能做到删除元素的功效,这也是一种便捷的删除元素的做法
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[1:3] = []
print(a)

列表的一些其他常用方法

列表还有一些其他的常用方法,如果你有需要可以使用,大致了解即可,有需要时可以查资料

# coding:utf-8
# 你可以查看有哪些内置方法,注意剔除私有方法和特殊方法
print(dir(list))
# count方法可以统计列表中某个元素出现的次数
a = [1, 2, 3, 4, 5, [5, 6, 7], 7, 8, 9, 10]
print(a.count(5))
# index方法判断某个元素在列表中出现的位置,可以在第二第三个参数中指定搜索的范围,找不到会报错
print(a.index(4, 2, 3))
# pop方法可以提供元素出栈功能,实现元素的先入后出,append方法是python中的类似入栈(push)的功能
# 使用pop方法可以将列表中最后一个元素移出栈,你可以简单理解为删除最后一个元素
print(a.pop())   # 会返回那个被移出栈的元素
print(a)
# reverse方法可以将元素反转,比如一堆数字,可以实现倒序排列的效果
a.reverse()
print(a)
# sort方法可以对元素进行排列
# 支持传入key、reverse两个参数,key参数可以指定生成比较大小的键
# reverse参数为布尔型,默认为False,从小到大排序,传入True则从大到小排列
a = ["12345", [5, 6, 7], "little bai"]
# key传入len方法,注意没有括号,会计算每个元素的长度,再倒序排列,注意必须每个元素都支持len方法
a.sort(key=len, reverse=True)
print(a)
# 也可以做数字排序
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a.sort(reverse=True)
print(a)

# 上述讲的排序方法需要改变列表本身的顺序,如果我只想排序不想改变呢?
# 复制一个新列表,将新列表进行排序是一个办法,还有其他办法吗?
# reversed函数可以倒序列表,生成可迭代对象,可以转化为列表展示。但不会改变原列表
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(list(reversed(a)))
print(a)
# sorted函数可以排序列表,也不会改变原列表,还支持参数
b = [2, 1, 3, 4, 5, 8, 7, 6, 9, 10]
print(sorted(b))
# 这个也行,这样看来它可以替代reversed函数,但要写个参数,看个人方便吧
print(sorted(b, reverse=True))
print(b)
# key参数也可以传入一个自己定义的函数,返回排序序号啥的,关于自己定义函数,我们将在后面讲到
c = ["12345", [5, 6, 7], "little bai"]
print(sorted(c, reverse=True, key=len))
print(c)

单词释义

单词 释义
append 附加,增补
extend 扩展
insert 插入
del delete删除这个单词的简写
remove 拿开,去除
clear 清除,清理
count 计数
index 索引
Sequence Packing 突然地出现,突然地伸出,这是理解为出栈命令
push 推,推进去,这里理解为入栈命令,其他语言可能有push这个命令
reverse 颠倒,使反转,reversed为这个单词的过去式,意思为已反转的
sort 排序,sorted为这个单词的过去式,意思为已排序的
key 关键,钥匙,键
Copyright © 雪山凌狐教程 all right reserved,powered by Gitbook该文件修订时间: 2020-09-19 12:37:27

results matching ""

    No results matching ""